package com.googlecode.bindyj.function;

public abstract class Func3<R, A, B, C> implements Func<R> {

  @SuppressWarnings("unchecked")
  public R call(Object... args) {
    FuncPreconditions.checkArgumentCount(3, args.length);

    return call((A) args[0], (B) args[1], (C) args[2]);
  }

  protected abstract R call(A a, B b, C c);
}
